retrieval mit Spezifikationen und Verwendungsmustern, zum unifikationsbasierten Konfigurationsmanagement sowie zur Inferenz von Varianten- und Konfigurationsstrukturen aus existierenden Quelltexten. NORA ist mit sprachspezifischem Wissen parametrisiert und kann unvollstaendige oder inkonsistente I
nformation handhaben. Der Aufsatz gibt eine Uebersicht ueber die Werkzeuge und die verwendeten Inferenzverfahren; abschliessend wird die Systemarchitektur und die Kommunikation zwischen den Werkzeugen skizziert.
Description: A common approach to combine the object-oriented and logic programming paradigms is to formulate a set of inference rules for an object logic. We show how resolution is expressed using the full feature logic. In contrast to similar approaches we do not only exchange the underlying ter
m universe but discard the predicate calculus completely. We demonstrate that an untyped resolution violates a closed world assumption and introduce a type discipline to solve this problem. To integrate inheritance into this framework we introduce polymorphic types and rules.
Keywords: Feature resolution, feature logic
Record-Last-Modified-Date: Thu, 28 Dec 95 01:01:09 +0100
ALIWEB-Title: Die inferenzbasierte Softwareentwicklungsumgebung NORA
Admin-Email: zeller@ips.cs.tu-bs.de
Admin-Name: Andreas Zeller
Description: Reuse of old software, as well as early quality assurance during new developments, requires complex analysis methods and intelligent tools. Therefore, the experimental software development environment NORA aims to realize recent achievements from unification theory and deduction method
s. NORA presents a set of interactive tools grouped around a library of reusable components. This set of tools includes inference-based interface analysis, component retrieval using pre- and post-conditions and type signatures as search keys, software configuration management based on feature unifi
cation, and inference of configuration structures from existing source code. NORA is parametrized with language-specific knowledge and can handle incomplete and inconsistent information. The paper describes the tools and the inference methods involved; finally, the system architecture and tool com
munication are outlined.
Keywords: Modules and interfaces, software libraries, restructuring, version control, software configuration management, deduction and theorem proving, knowledge representation formalisms and methods, information search and retrieval.
Record-Last-Modified-Date: Thu, 28 Dec 95 01:01:04 +0100
ALIWEB-Title: Perspektiven der Softwaretechnologie
Admin-Email: zeller@ips.cs.tu-bs.de
Admin-Name: Andreas Zeller
Description: Der vorliegende Aufsatz ist eine Ausarbeitung der Antrittsvorlesung, die der Autor im November 1992 an der Technischen Universitaet Braunschweig gehalten hat. Er praesentiert eine programmatische Darstellung der Softwaretechnologie und ihrer Perspektiven. Nach einem kurzen Abriss der G
eschichte des Software Engineering werden aktuelle Entwicklungen und Probleme skizziert. Im Hauptteil der Arbeit wird sodann dargelegt, dass nach Ueberzeugung des Autors evolutionaere Konzepte, moderne Programmiersprachen und intelligente Werkzeuge einen wesentlichen Fortschritt fuer die Softwareen
twicklung versprechen. Zum Schluss wird die inferenzbasierte Softwareentwicklungsumgebung NORA vorgestellt, die in der Arbeitsgruppe des Autors entwickelt wird.
ALIWEB-Title: ALADIN: A Scanner Generator for Incremental Programming Environments
Admin-Email: zeller@ips.cs.tu-bs.de
Admin-Name: Andreas Zeller
Description: A large number of scanner generators has been developed. Since they are restricted to the longest match rule they are unsuitable for an incremental environment. We present the ALADIN system, which is able to deliver more than a single token if required. Thus, an ambiguity may be passe
d to the calling instance. Beyond this ``incremental feature'', ALADIN is a well-structured and easy-to-understand language. In contrast to existing systems, the desired behavior of the generated scanners is completely specified explicitly. Thus, the specifications are more abstracted than in ot
her systems. A prototype implementation has shown that ALADIN-generated scanners have about the same performance as those generated by LEX.
ALIWEB-Title: Polymorphic Components for Monomorphic Languages
Admin-Email: zeller@ips.cs.tu-bs.de
Admin-Name: Andreas Zeller
Description: "Most procedural programming languages, due to their restricted type systems, do not allow for polymorphic software components in the style of functional languages. Such polymorphism however greatly increases the potential for component reuse, while still guaranteeing the security of s
trong typing. In this paper, we show how to obtain polymorphic software components for ``ordinary'' languages like C or Modula-2. Our method is based on generic type inference in a software component library. The source of polymorphism is the use of free (undeclared) names in a component. The analy
sis algorithm will infer <EM
Keywords: Polymorphic components, type inference
Record-Last-Modified-Date: Thu, 28 Dec 95 01:01:07 +0100
ALIWEB-Title: Inkrementelle, rückgekoppelte Suche in Software-Bibliotheken
Admin-Email: zeller@ips.cs.tu-bs.de
Admin-Name: Andreas Zeller
Description: Wiederverwendung von Software-Dokumenten verlangt eine Ablage, in der relevante Dokumente leicht aufgefunden werden koennen. Dokumente werden zur Suche in einer Sammlung durch Schluesselwoerter unabhaengig von einander indexiert. Dokumente und Schluesselwoerter bilden zusammen einen fo
rmalen Kontext, der einen Begriffsverband impliziert. Der Begriffsverband stellt eine natuerliche, nur aus der Indexierung abgeleiteten Gruppierung von Dokumenten und Attributen dar und erlaubt die effiziente inkrementelle Suche mit kontextsensitiver Unterstuetzung fuer den Benutzer. Die verschiede
nen Operationen werden formal und anhand eines Beispiels praesentiert. Fuer eine Implementierung wird eine guenstige Repraesentation des Begriffsverbandes vorgeschlagen und die typische Komplexitaet durch Experimente untersucht. Abschliessend wird das praesentierte Verfahren mit verwandten Ansaetze
n verglichen.
Keywords: Begriffsanalyse, Komponentensuche
Record-Last-Modified-Date: Thu, 28 Dec 95 01:40:29 +0100
ALIWEB-Title: A Unified Configuration Management Model
Admin-Email: zeller@ips.cs.tu-bs.de
Admin-Name: Andreas Zeller
Description: Integration of configuration management (CM) tools into software development environments raises the need for CM models to interoperate through a unified CM model. We present the version set model, where versions, components, and aggregates are grouped into sets according to their fea
tures, using feature logic as a formal base to denote sets and operations and deduce consistency. Version sets generalize well-known CM concepts such as components, repositories, workspaces, aggregates, or configurations. Arbitrary revision/variant combinations of components and aggregates are mod
eled in a uniform and orthogonal way. We show how the concepts of four central configuration management models -- the checkin/checkout model, the change set model, the composition model, and the long transaction model -- are encompassed and extended by the version set model, making it a unified bas
is for modeling, realizing and integrating configuration management tasks. Finally, some conditions for efficient realization are identified, based on our practical experience with the configuration management tool ICE. Although the described operations generally result in exponential time complex
ity, it turns out that the discussed CM models can be realized and combined without loss of efficiency.
Keywords: Software configuration management, Version control, Deduction and theorem proving, Knowledge representation formalisms and methods, Feature logic
Record-Last-Modified-Date: Thu, 28 Dec 95 01:01:20 +0100
ALIWEB-Title: VCR: A VDM-based software component retrieval tool
Admin-Email: zeller@ips.cs.tu-bs.de
Admin-Name: Andreas Zeller
Description: We present a tool which allows implicit VDM specifications to be used as search keys for the retrieval of software components. A preprocessing phase utilizes signature matching to filter promising candidates out of a component library. The actual specification matching phase builds pro
of obligations from the specifications of key and candidates and feeds them into a theorem prover. Validated obligations denote matching components. First experiments clearly demonstrate the feasibility of this approach. We thus get a high-precision retrieval tool which helps programmers in locatin
ALIWEB-Title: Handling Version Sets through Feature Logic
Admin-Email: zeller@ips.cs.tu-bs.de
Admin-Name: Andreas Zeller
Description: Software Configuration Management suffers from a multitude of models for version identification and control. We propose a unified approach based on feature logic. Using feature logic, version sets are the basic units of reasoning, making attribution models and version repositories sp
ecial cases of a more general scheme. Version sets are identified by their features, that is, a boolean expression over (name: value) attributions. A system is configured by incrementally narrowing the set of versions until each component is contained in one single version. Feature logic ensures
early detection of inconsistencies as well as automatic completion of the configuration thread. We have implemented a tool called ICE, realizing the above approach. As ICE uses the common C preprocessor (CPP) representation, one can select, add, or modify arbitrary version subsets as user-readab
le entities. ICE deduces features and constraints from existing CPP-managed sources, providing interactive and incremental exploration of the configuration space.
Keywords: software configuration management, version control, deduction and theorem proving, knowledge representation formalisms and methods
Record-Last-Modified-Date: Thu, 28 Dec 95 01:01:14 +0100
ALIWEB-Title: Reengineering of Configurations Based on Mathematical Concept Analysis
Admin-Email: zeller@ips.cs.tu-bs.de
Admin-Name: Andreas Zeller
Description: We apply mathematical concept analysis to the problem of reengineering configurations. Concept analysis has been developed by German mathematicians over the last years; it will reconstruct a taxonomy of concepts from a relation between objects and attributes. We use concept analysis to
infer configuration structures from existing source code. Our tool NORA/RECS will accept source code, where configuration-specific code pieces are controlled by the preprocessor. The algorithm will compute a so-called concept lattice, which --- when visually displayed --- allows remarkable insigh
t into the structure and properties of possible configurations. The lattice not only displays fine-grained dependencies between configuration threads, but also visualizes the overall quality of configuration structures according to software engineering principles. In a second step, interferences be
tween configuration threads can be analysed in order to restructure configurations. Interferences indicate high coupling and low cohesion between configuration concepts. They can be resolved by automatically decomposing the source code into ``modules'', where each module deals with a cohesive subse
t of the configuration space. The paper presents experimental results on various programs. In particular, we consider some well-known Unix programs which suffer from configuration hacking.
Keywords: Software Engineering, Distribution and Maintenance, restructuring, version control, Interactive programming environments, Software configuration management
Record-Last-Modified-Date: Thu, 28 Dec 95 01:01:19 +0100
Description: We present a retrieval approach which allows pre- and postconditions of software components to be used as search keys. A component qualifies, if it has a weaker precondition and a stronger postcondition than the search key. In contrast to previous work, our tool NORA/HAMMR allows for
configurable chains of deduction-based filters such as signature matchers, model checkers --- which will be our main subject here ---, and resolution provers; the latter can be run with dynamically adjusted axiom sets and inference rules. Hence, instead of feeding the search key and all components'
specifications to a theorem prover in a batch-like fashion, NORA/HAMMR allows for incremental narrowing of the search space along the filter chain, and interactive inspection of intermediate results.
Description: Reusable software components from a library are individually indexed with a set of keywords. To retrieve components the user incrementally specifies a set of keywords that the searched components are required to have. After each step the selected components and the exact set of remaini
ng significant keywords needed to refine the query further are presented to the user. The process ensures that at least one component is found and the user cannot specify conflicting keywords. The efficient computation of retrieved components and significant keywords is based on the precalculated c
oncepts of the library, which are natural pairs of component and keyword sets. The concepts form a lattice of super- and subconcepts and are obtained by formal concept analysis of the relation over components and keywords. The two main theorems state how to calculate the result of a query and the r
emaining significant keywords using the concept lattice. An implementation of the proposed approach shows that the user can select components quickly and precisely.
Keywords: concept analysis, retrieval
Record-Last-Modified-Date: Thu, 28 Dec 95 01:00:59 +0100
Description: Mit Schluesselwoertern indexierte Komponenten einer Sammlung werden einmalig durch formale Begriffsanalyse zu einem Begriffsverband strukturiert. Dieser erlaubt dann, Komponenten durch die Angabe von Schluesselwoertern einfach, effizient, inkrementell und mit Unterstuetzung fuer den B
enutzer zu suchen. Der Suchprozess garantiert dabei, dass bei einer Suche mindestens eine Komponente gefunden wird. Da der Suchprozess unabhaengig vom Inhalt der verwalteten Komponenten ist, ist er auch fuer inhomogene und multimediale Sammlungen geeignet. Eine prototypische Implementierung zur V
erwaltung einer Unix Online-Dokumentation belegt die Anwendbarkeit des Verfahrens, dessen Komplexitaet zusaetzlich experimentell untersucht wurde. Es zeigt sich, dass das Verfahren eine schnelle und genaue Navigation in Sammlungen mit mehreren tausend Komponenten ermoeglicht.
ALIWEB-Title: Formale Begriffsanalyse im Software Engineering
Admin-Email: zeller@ips.cs.tu-bs.de
Admin-Name: Andreas Zeller
Description: Reuse und Reengineering sind aktuelle Probleme im Software-Engineering. Reuse zielt auf die Wiederverwendung von Software-Komponenten oder -Schablonen aus einer Bibliothek; dazu ist es notwendig, effektive Verfahren zur Komponentensuche bereitzustellen. Reengineering befasst sich mit d
er Rekonstruktion von Systemstrukturen aus alter Software; Ziel ist es, Altsoftware so zu transformieren, dass sie auch weiterhin lebensfaehig bleibt. Wir praesentieren zwei Werkzeuge zur Unterstuetzung von Reuse und Reengineering, die auf formaler Begriffsanalyse basieren. Nora/Recs rekonstruiert
Konfigurationsstrukturen aus Quelltexten und stellt sie graphisch dar. Man erhaelt bemerkenswerte Einsichten in die Struktur des Konfigurationsraums: alle Abhaengigkeiten zwischen Konfigurationspfaden werden dargestellt, und unerwuenschte Interferenzen zwischen Konfigurationen werden aufgedeckt. N
ora/Focs bietet interaktive, inkrementelle Unterstuetzung zur Suche in Software-Komponentenbibliotheken, in denen die einzelnen Komponenten mit Attributen indiziert sind.
ALIWEB-Title: No Type Stamps and No Structure Stamps---A Referentially-Transparent Higher-Order Module Language
Admin-Email: zeller@ips.cs.tu-bs.de
Admin-Name: Andreas Zeller
Description: A language for programming-in-the-large should support architectural descriptions of an entire product line. The evaluation of programs-in-the-large should generate the architecture of individual products and should link implementations-in-the-small to form an executable product. The S
tandard ML (SML) module language could serve this task, but it is not referentially transparent. Furthermore, it does not distinguish between architectural and implementational concerns. This paper presents a general module language that is based on a typed lambda calculus extended by systems. Ov
ercoming SML's drawbacks, the module language permits syntactic control of type and structure generativity resulting in referential transparency. Furthermore, splitting up architectural and implementational concerns, the implementation of elementary modules is not part of the module language. The m
odule calculus is essentially simply typed, with elementary modules and types as simple values, and interfaces and kinds as types. Function and system interfaces are value-dependent types.
Keywords: module language, ML, type systems
Record-Last-Modified-Date: Thu, 28 Dec 95 00:15:07 +0100
ALIWEB-Title: DDD - A Free Graphical Front-End for UNIX Debuggers
Admin-Email: zeller@ips.cs.tu-bs.de
Admin-Name: Andreas Zeller
Description: The Data Display Debugger (DDD) is a novel graphical user interface to GDB and DBX, the popular UNIX debuggers. Besides ``usual'' features such as viewing source texts and breakpoints, DDD provides a graphical data display, where data structures are displayed as graphs. A simple mous
e click dereferences pointers or reveals structure contents. Complex data structures can be explored incrementally and interactively, using automatic layout if preferred. Each time the program stops, the data display reflects the current variable values. DDD has been designed to compete with well-
known commercial debuggers; however, it is free software, protected by the GNU general public license. In this paper, we give a quick presentation of DDD and describe its architecture and basic functionality from a technical point of view.
Keywords: Software Engineering, Debugging Aids, Diagnostics, User Interfaces
Record-Last-Modified-Date: Thu, 28 Dec 95 01:01:23 +0100
ALIWEB-Title: Smooth Operations with Square Operators - The Version Set Model in ICE
Admin-Email: zeller@ips.cs.tu-bs.de
Admin-Name: Andreas Zeller
Description: Implementing software configuration management (SCM) in an organization raises various integration problems. We present the Incremental Configuration Environment (ICE), a novel SCM system providing smooth integration with both the software process and the development environment. ICE
is based on the version set model, where versions, components, and aggregates are grouped into sets according to their features, using feature logic as a formal base to denote sets and operations and to deduce consistency. Version sets generalize well-known SCM concepts such as components, reposi
tories, workspaces, aggregates, or configurations and allow for flexibility in combining these concepts. For integration in software development environments, ICE provides a featured file system (FFS), where version sets are represented as files and directories. In the FFS, arbitrary programs can
incrementally access and explore version sets. Using the well-known C preprocessor (CPP) representation, users can view and edit multiple versions simultaneously, while still only the differences between version sets are stored. Facilities for multi-version merging or deductive program constructio
n care for effective work coordination and automatic reuse of derived objects.
Keywords: Software configuration management, Version control, File systems management, Deduction and theorem proving, Knowledge representation formalisms and methods, Feature logic
Record-Last-Modified-Date: Tue, 23 Jan 96 15:35:58 +0100
ALIWEB-Title: ICE - Die inkrementelle Konfigurationsumgebung
Admin-Email: zeller@ips.cs.tu-bs.de
Admin-Name: Andreas Zeller
Description: ICE - The Incremental Configuration Engine
Keywords: Software Engineering, Software Configuration Management, Programming Teams, Distribution and Maintenance, Version Control, Deduction and Theorem Proving, Knowledge Representation Formalisms and Methods, File Systems Management
Record-Last-Modified-Date: Thu, 28 Dec 95 01:02:34 +0100
Title: ICE - Die inkrementelle Konfigurationsumgebung
URI: http://www.cs.tu-bs.de/softech/ice/ice.html
Template-Type: DOCUMENT
ALIWEB-Title: DDD - Der graphische Debugger
Admin-Email: zeller@ips.cs.tu-bs.de
Admin-Name: Andreas Zeller
Description: DDD ist eine graphische Benutzerschnittstelle zu GDB und DBX, den bekannten UNIX-Debuggern. Neben den ``ueblichen'' Features wie die Darstellung von Quelltexten bietet DDD eine graphische Datenanzeige, in der Datenstrukturen als Graphen dargestellt werden. Zeiger werden durch einen
einfachen Mausklick dereferenziert, Strukturen koennen auf- und zugeklappt werden. Der Benutzer kann komplexe Datenstrukturen Schritt fuer Schritt interaktiv untersuchen; sogar mit automatischem Layout, wenn gewuenscht. Bei jedem Programm-Halt wird im Datenfenster der aktuelle Zustand dargestellt
. Mit DDD koennen Entwickler nicht nur betrachten, wie ihr Programm Codezeilen ausfuehrt - sondern auch Schritt fuer Schritt das Erzeugen und Veraendern von Daten am Bildschirm verfolgen. Weitere DDD-Highlights: Debugging von C, C++, Ada-, Fortran-, Pascal- und Modula-2-Programmen; Hypertext-Navig
ation in Quelltexten; GDB/DBX Kommandoeingabe mit vollen Editier-, Historien- und Vervollstaendigungsfunktionen; Assembler- und Register-Fenster; Haltepunkt-, History-, Argument- und Stapel-Editoren; Emacs-Integration; Programmausfuehrung in Terminal-Fenster; Debugging auf Remote-Rechner; Online-Ma